//package com.lp.business.mongodb.dao.impl;
//
//import java.util.List;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.data.mongodb.core.query.Criteria;
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.data.mongodb.core.query.Update;
//import org.springframework.stereotype.Repository;
//
//import com.lp.business.mongodb.dao.User2Dao;
//import com.lp.business.mongodb.model.User2;
//
//@Repository
//public class User2DaoImpl implements User2Dao{
//
//	@Autowired
//    private MongoTemplate mongoTemplate;
//	
//    public List<User2> get() {
//          List<User2> user = mongoTemplate.findAll(User2.class);
//          return user;
//    }
//    public User2 getOne(Integer id) {
//          User2 user = mongoTemplate.findOne(new Query(Criteria.where("userId")
//                      .is(id)), User2.class);
//          return user;
//    }
//    public void findAndModify(Integer id, Integer age) {
//          /*mongoTemplate.updateFirst(new Query(Criteria.where("userId").is(id)),
//                      new Update().inc("age", age), User.class);*/
//          
//          mongoTemplate.updateFirst(new Query(Criteria.where("userId").is(id)),
//                      new Update().set("age", age), User2.class);
//    }
//    public void insert(User2 u) {
//          mongoTemplate.insert(u);
//    }
//    public void removeOne(Integer id) {
//          Criteria criteria = Criteria.where("userId").in(id);
//          if (criteria != null) {
//                Query query = new Query(criteria);
//                if (query != null
//                            && mongoTemplate.findOne(query, User2.class) != null)
//                      mongoTemplate.remove(mongoTemplate.findOne(query, User2.class));
//          }
//    }
//    /**
//     * 修改多条 <br>
//     * ------------------------------<br>
//     *
//     * @param criteriaUser
//     * @param user
//     */
//    public void update(User2 criteriaUser, User2 user) {
//          Criteria criteria = Criteria.where("age").gt(criteriaUser.getAge());
//          ;
//          Query query = new Query(criteria);
//          Update update = Update.update("name", user.getName()).set("age",
//                      user.getAge());
//          mongoTemplate.updateMulti(query, update, User2.class);
//    }
//    /**
//     * 按条件查询, 分页 <br>
//     * ------------------------------<br>
//     *
//     * @param criteriaUser
//     * @param skip
//     * @param limit
//     * @return
//     */
//    public List<User2> find(User2 criteriaUser, int skip, int limit) {
//          Query query = getQuery(criteriaUser);
//          query.skip(skip);
//          query.limit(limit);
//          return mongoTemplate.find(query, User2.class);
//    }
//    /**
//     * 根据条件查询出来后 再去修改 <br>
//     * ------------------------------<br>
//     *
//     * @param criteriaUser
//     *            查询条件
//     * @param updateUser
//     *            修改的值对象
//     * @return
//     */
//    public User2 findAndModify(User2 criteriaUser, User2 updateUser) {
//          Query query = getQuery(criteriaUser);
//          Update update = Update.update("age", updateUser.getAge()).set("name",
//                      updateUser.getName());
//          return mongoTemplate.findAndModify(query, update, User2.class);
//    }
//    /**
//     * 查询出来后 删除 <br>
//     * ------------------------------<br>
//     *
//     * @param criteriaUser
//     * @return
//     */
//    public User2 findAndRemove(User2 criteriaUser) {
//          Query query = getQuery(criteriaUser);
//          return mongoTemplate.findAndRemove(query, User2.class);
//    }
//    /**
//     * count <br>
//     * ------------------------------<br>
//     *
//     * @param criteriaUser
//     * @return
//     */
//    public long count(User2 criteriaUser) {
//          Query query = getQuery(criteriaUser);
//          return mongoTemplate.count(query, User2.class);
//    }
//    /**
//     * 条件查询
//     *
//     * @param criteriaUser
//     * @return
//     */
//    public Query getQuery(User2 criteriaUser) {
//          if (criteriaUser == null) {
//                criteriaUser = new User2();
//          }
//          Query query = new Query();
//          if (criteriaUser.getId() != null) {
//                Criteria criteria = Criteria.where("userId").is(criteriaUser.getId());
//                query.addCriteria(criteria);
//          }
//          if (criteriaUser.getAge() > 0) {
//                Criteria criteria = Criteria.where("age").gt(criteriaUser.getAge());
//                query.addCriteria(criteria);
//          }
//          if (criteriaUser.getName() != null) {
//                Criteria criteria = Criteria.where("name").regex(
//                            "^" + criteriaUser.getName());
//                query.addCriteria(criteria);
//          }
//          return query;
//    }
//}
